home *** CD-ROM | disk | FTP | other *** search
/ Aminet 44 / Aminet 44 (2001)(GTI - Schatztruhe)[!][Aug 2001].iso / Aminet / comm / mail / YAM23src.lha / Source / YAM_rexx.h < prev    next >
C/C++ Source or Header  |  2001-05-08  |  17KB  |  981 lines

  1. /***************************************************************************
  2.  
  3.  YAM - Yet Another Mailer
  4.  Copyright (C) 1995-2000 by Marcel Beck <mbeck@yam.ch>
  5.  Copyright (C) 2000-2001 by YAM Open Source Team
  6.  
  7.  This program is free software; you can redistribute it and/or modify
  8.  it under the terms of the GNU General Public License as published by
  9.  the Free Software Foundation; either version 2 of the License, or
  10.  (at your option) any later version.
  11.  
  12.  This program is distributed in the hope that it will be useful,
  13.  but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15.  GNU General Public License for more details.
  16.  
  17.  You should have received a copy of the GNU General Public License
  18.  along with this program; if not, write to the Free Software
  19.  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  20.  
  21.  YAM Official Support Site :  http://www.yam.ch
  22.  YAM OpenSource project    :  http://sourceforge.net/projects/yamos/
  23.  
  24.  $Id: YAM_rexx.h,v 1.3 2001/05/08 22:27:37 damato Exp $
  25.  
  26. ***************************************************************************/
  27. /*
  28.  * Source generated with ARexxBox 1.12 (May 18 1993)
  29.  * which is Copyright (c) 1992,1993 Michael Balzer
  30.  */
  31.  
  32. #ifndef _YAM_rexx_H
  33. #define _YAM_rexx_H
  34.  
  35. #define RXIF_INIT   1
  36. #define RXIF_ACTION 2
  37. #define RXIF_FREE   3
  38.  
  39. #define ARB_CF_ENABLED     (1L << 0)
  40.  
  41. #define ARB_HF_CMDSHELL    (1L << 0)
  42. #define ARB_HF_USRMSGPORT  (1L << 1)
  43.  
  44. struct RexxHost
  45. {
  46.     struct MsgPort *port;
  47.     char portname[ 80 ];
  48.     long replies;
  49.     struct RDArgs *rdargs;
  50.     long flags;
  51.     APTR userdata;
  52. };
  53.  
  54. struct rxs_command
  55. {
  56.     char *command, *args, *results;
  57.     long resindex;
  58.     void (*function)( struct RexxHost *, void **, long, struct RexxMsg * );
  59.     long flags;
  60. };
  61.  
  62. struct arb_p_link
  63. {
  64.     char    *str;
  65.     int        dst;
  66. };
  67.  
  68. struct arb_p_state
  69. {
  70.     int        cmd;
  71.     struct arb_p_link *pa;
  72. };
  73.  
  74. #ifndef NO_GLOBALS
  75. extern char RexxPortBaseName[80];
  76. extern struct rxs_command rxs_commandlist[];
  77. extern struct arb_p_state arb_p_state[];
  78. extern int command_cnt;
  79. extern char *rexx_extension;
  80. #endif
  81.  
  82. void ReplyRexxCommand( struct RexxMsg *rxmsg, long prim, long sec, char *res );
  83. void FreeRexxCommand( struct RexxMsg *rxmsg );
  84. struct RexxMsg *CreateRexxCommand( struct RexxHost *host, char *buff, BPTR fh );
  85. struct RexxMsg *CommandToRexx( struct RexxHost *host, struct RexxMsg *rexx_command_message );
  86. struct RexxMsg *SendRexxCommand( struct RexxHost *host, char *buff, BPTR fh );
  87.  
  88. void CloseDownARexxHost( struct RexxHost *host );
  89. struct RexxHost *SetupARexxHost( char *basename, struct MsgPort *usrport );
  90. struct rxs_command *FindRXCommand( char *com );
  91. char *ExpandRXCommand( struct RexxHost *host, char *command );
  92. char *StrDup( char *s );
  93. void ARexxDispatch( struct RexxHost *host );
  94.  
  95. /* rxd-Strukturen dürfen nur AM ENDE um lokale Variablen erweitert werden! */
  96.  
  97. struct rxd_addrdelete
  98. {
  99.     long rc, rc2;
  100.     struct {
  101.         char *alias;
  102.     } arg;
  103. };
  104.  
  105. void rx_addrdelete( struct RexxHost *, struct rxd_addrdelete **, long, struct RexxMsg * );
  106.  
  107. struct rxd_addredit
  108. {
  109.     long rc, rc2;
  110.     struct {
  111.         char *alias;
  112.         char *name;
  113.         char *email;
  114.         char *pgp;
  115.         char *homepage;
  116.         char *street;
  117.         char *city;
  118.         char *country;
  119.         char *phone;
  120.         char *comment;
  121.         long *birthdate;
  122.         char *image;
  123.         char **member;
  124.         long add;
  125.     } arg;
  126. };
  127.  
  128. void rx_addredit( struct RexxHost *, struct rxd_addredit **, long, struct RexxMsg * );
  129.  
  130. struct rxd_addrfind
  131. {
  132.     long rc, rc2;
  133.     struct {
  134.         char *var, *stem;
  135.         char *pattern;
  136.         long nameonly;
  137.         long emailonly;
  138.     } arg;
  139.     struct {
  140.         char **alias;
  141.     } res;
  142. };
  143.  
  144. void rx_addrfind( struct RexxHost *, struct rxd_addrfind **, long, struct RexxMsg * );
  145.  
  146. struct rxd_addrgoto
  147. {
  148.     long rc, rc2;
  149.     struct {
  150.         char *alias;
  151.     } arg;
  152. };
  153.  
  154. void rx_addrgoto( struct RexxHost *, struct rxd_addrgoto **, long, struct RexxMsg * );
  155.  
  156. struct rxd_addrinfo
  157. {
  158.     long rc, rc2;
  159.     struct {
  160.         char *var, *stem;
  161.         char *alias;
  162.     } arg;
  163.     struct {
  164.         char *type;
  165.         char *name;
  166.         char *email;
  167.         char *pgp;
  168.         char *homepage;
  169.         char *street;
  170.         char *city;
  171.         char *country;
  172.         char *phone;
  173.         char *comment;
  174.         long *birthdate;
  175.         char *image;
  176.         char **members;
  177.     } res;
  178. };
  179.  
  180. void rx_addrinfo( struct RexxHost *, struct rxd_addrinfo **, long, struct RexxMsg * );
  181.  
  182. struct rxd_addrload
  183. {
  184.     long rc, rc2;
  185.     struct {
  186.         char *filename;
  187.     } arg;
  188. };
  189.  
  190. void rx_addrload( struct RexxHost *, struct rxd_addrload **, long, struct RexxMsg * );
  191.  
  192. struct rxd_addrnew
  193. {
  194.     long rc, rc2;
  195.     struct {
  196.         char *var, *stem;
  197.         char *type;
  198.         char *alias;
  199.         char *name;
  200.         char *email;
  201.     } arg;
  202.     struct {
  203.         char *alias;
  204.     } res;
  205. };
  206.  
  207. void rx_addrnew( struct RexxHost *, struct rxd_addrnew **, long, struct RexxMsg * );
  208.  
  209. struct rxd_addrresolve
  210. {
  211.     long rc, rc2;
  212.     struct {
  213.         char *var, *stem;
  214.         char *alias;
  215.     } arg;
  216.     struct {
  217.         char *recpt;
  218.     } res;
  219. };
  220.  
  221. void rx_addrresolve( struct RexxHost *, struct rxd_addrresolve **, long, struct RexxMsg * );
  222.  
  223. struct rxd_addrsave
  224. {
  225.     long rc, rc2;
  226.     struct {
  227.         char *filename;
  228.     } arg;
  229. };
  230.  
  231. void rx_addrsave( struct RexxHost *, struct rxd_addrsave **, long, struct RexxMsg * );
  232.  
  233. struct rxd_appbusy
  234. {
  235.     long rc, rc2;
  236.     struct {
  237.         char *text;
  238.     } arg;
  239. };
  240.  
  241. void rx_appbusy( struct RexxHost *, struct rxd_appbusy **, long, struct RexxMsg * );
  242.  
  243. struct rxd_appnobusy
  244. {
  245.     long rc, rc2;
  246. };
  247.  
  248. void rx_appnobusy( struct RexxHost *, struct rxd_appnobusy **, long, struct RexxMsg * );
  249.  
  250. struct rxd_folderinfo
  251. {
  252.     long rc, rc2;
  253.     struct {
  254.         char *var, *stem;
  255.         char *folder;
  256.     } arg;
  257.     struct {
  258.         long *number;
  259.         char *name;
  260.         char *path;
  261.         long *total;
  262.         long *new;
  263.         long *unread;
  264.         long *size;
  265.         long *type;
  266.     } res;
  267. };
  268.  
  269. void rx_folderinfo( struct RexxHost *, struct rxd_folderinfo **, long, struct RexxMsg * );
  270.  
  271. struct rxd_getconfiginfo
  272. {
  273.     long rc, rc2;
  274.     struct {
  275.         char *var, *stem;
  276.         char *item;
  277.     } arg;
  278.     struct {
  279.         char *value;
  280.     } res;
  281. };
  282.  
  283. void rx_getconfiginfo( struct RexxHost *, struct rxd_getconfiginfo **, long, struct RexxMsg * );
  284.  
  285. struct rxd_getfolderinfo
  286. {
  287.     long rc, rc2;
  288.     struct {
  289.         char *var, *stem;
  290.         char *item;
  291.     } arg;
  292.     struct {
  293.         char *value;
  294.     } res;
  295. };
  296.  
  297. void rx_getfolderinfo( struct RexxHost *, struct rxd_getfolderinfo **, long, struct RexxMsg * );
  298.  
  299. struct rxd_getmailinfo
  300. {
  301.     long rc, rc2;
  302.     struct {
  303.         char *var, *stem;
  304.         char *item;
  305.     } arg;
  306.     struct {
  307.         char *value;
  308.     } res;
  309. };
  310.  
  311. void rx_getmailinfo( struct RexxHost *, struct rxd_getmailinfo **, long, struct RexxMsg * );
  312.  
  313. struct rxd_getselected
  314. {
  315.     long rc, rc2;
  316.     struct {
  317.         char *var, *stem;
  318.     } arg;
  319.     struct {
  320.         long **num;
  321.     } res;
  322. };
  323.  
  324. void rx_getselected( struct RexxHost *, struct rxd_getselected **, long, struct RexxMsg * );
  325.  
  326. struct rxd_geturl
  327. {
  328.     long rc, rc2;
  329.     struct {
  330.         char *url;
  331.         char *filename;
  332.     } arg;
  333. };
  334.  
  335. void rx_geturl( struct RexxHost *, struct rxd_geturl **, long, struct RexxMsg * );
  336.  
  337. struct rxd_help
  338. {
  339.     long rc, rc2;
  340.     struct {
  341.         char *file;
  342.     } arg;
  343. };
  344.  
  345. void rx_help( struct RexxHost *, struct rxd_help **, long, struct RexxMsg * );
  346.  
  347. struct rxd_hide
  348. {
  349.     long rc, rc2;
  350. };
  351.  
  352. void rx_hide( struct RexxHost *, struct rxd_hide **, long, struct RexxMsg * );
  353.  
  354. struct rxd_info
  355. {
  356.     long rc, rc2;
  357.     struct {
  358.         char *var, *stem;
  359.         char *item;
  360.     } arg;
  361.     struct {
  362.         char *value;
  363.     } res;
  364. };
  365.  
  366. void rx_info( struct RexxHost *, struct rxd_info **, long, struct RexxMsg * );
  367.  
  368. struct rxd_isonline
  369. {
  370.     long rc, rc2;
  371. };
  372.  
  373. void rx_isonline( struct RexxHost *, struct rxd_isonline **, long, struct RexxMsg * );
  374.  
  375. struct rxd_listselect
  376. {
  377.     long rc, rc2;
  378.     struct {
  379.         char *mode;
  380.     } arg;
  381. };
  382.  
  383. void rx_listselect( struct RexxHost *, struct rxd_listselect **, long, struct RexxMsg * );
  384.  
  385. struct rxd_mailarchive
  386. {
  387.     long rc, rc2;
  388.     struct {
  389.         char *folder;
  390.     } arg;
  391. };
  392.  
  393. void rx_mailarchive( struct RexxHost *, struct rxd_mailarchive **, long, struct RexxMsg * );
  394.  
  395. struct rxd_mailbounce
  396. {
  397.     long rc, rc2;
  398.     struct {
  399.         char *var, *stem;
  400.         long quiet;
  401.     } arg;
  402.     struct {
  403.         long *window;
  404.     } res;
  405. };
  406.  
  407. void rx_mailbounce( struct RexxHost *, struct rxd_mailbounce **, long, struct RexxMsg * );
  408.  
  409. struct rxd_mailchangesubject
  410. {
  411.     long rc, rc2;
  412.     struct {
  413.         char *subject;
  414.     } arg;
  415. };
  416.  
  417. void rx_mailchangesubject( struct RexxHost *, struct rxd_mailchangesubject **, long, struct RexxMsg * );
  418.  
  419. struct rxd_mailcheck
  420. {
  421.     long rc, rc2;
  422.     struct {
  423.         char *var, *stem;
  424.         long *pop;
  425.         long manual;
  426.     } arg;
  427.     struct {
  428.         long *downloaded;
  429.         long *onserver;
  430.         long *dupskipped;
  431.         long *deleted;
  432.     } res;
  433. };
  434.  
  435. void rx_mailcheck( struct RexxHost *, struct rxd_mailcheck **, long, struct RexxMsg * );
  436.  
  437. struct rxd_mailcopy
  438. {
  439.     long rc, rc2;
  440.     struct {
  441.         char *folder;
  442.     } arg;
  443. };
  444.  
  445. void rx_mailcopy( struct RexxHost *, struct rxd_mailcopy **, long, struct RexxMsg * );
  446.  
  447. struct rxd_maildelete
  448. {
  449.     long rc, rc2;
  450.     struct {
  451.         long atonce;
  452.         long force;
  453.     } arg;
  454. };
  455.  
  456. void rx_maildelete( struct RexxHost *, struct rxd_maildelete **, long, struct RexxMsg * );
  457.  
  458. struct rxd_mailedit
  459. {
  460.     long rc, rc2;
  461.     struct {
  462.         char *var, *stem;
  463.         long quiet;
  464.     } arg;
  465.     struct {
  466.         long *window;
  467.     } res;
  468. };
  469.  
  470. void rx_mailedit( struct RexxHost *, struct rxd_mailedit **, long, struct RexxMsg * );
  471.  
  472. struct rxd_mailexport
  473. {
  474.     long rc, rc2;
  475.     struct {
  476.         char *filename;
  477.         long all;
  478.         long append;
  479.     } arg;
  480. };
  481.  
  482. void rx_mailexport( struct RexxHost *, struct rxd_mailexport **, long, struct RexxMsg * );
  483.  
  484. struct rxd_mailfilter
  485. {
  486.     long rc, rc2;
  487.     struct {
  488.         char *var, *stem;
  489.         long all;
  490.     } arg;
  491.     struct {
  492.         long *checked;
  493.         long *bounced;
  494.         long *forwarded;
  495.         long *replied;
  496.         long *executed;
  497.         long *moved;
  498.         long *deleted;
  499.     } res;
  500. };
  501.  
  502. void rx_mailfilter( struct RexxHost *, struct rxd_mailfilter **, long, struct RexxMsg * );
  503.  
  504. struct rxd_mailforward
  505. {
  506.     long rc, rc2;
  507.     struct {
  508.         char *var, *stem;
  509.         long quiet;
  510.     } arg;
  511.     struct {
  512.         long *window;
  513.     } res;
  514. };
  515.  
  516. void rx_mailforward( struct RexxHost *, struct rxd_mailforward **, long, struct RexxMsg * );
  517.  
  518. struct rxd_mailimport
  519. {
  520.     long rc, rc2;
  521.     struct {
  522.         char *filename;
  523.         long wait;
  524.     } arg;
  525. };
  526.  
  527. void rx_mailimport( struct RexxHost *, struct rxd_mailimport **, long, struct RexxMsg * );
  528.  
  529. struct rxd_mailinfo
  530. {
  531.     long rc, rc2;
  532.     struct {
  533.         char *var, *stem;
  534.         long *index;
  535.     } arg;
  536.     struct {
  537.         long *index;
  538.         char *status;
  539.         char *from;
  540.         char *to;
  541.         char *replyto;
  542.         char *subject;
  543.         char *filename;
  544.         long *size;
  545.         char *date;
  546.         char *flags;
  547.         long *msgid;
  548.     } res;
  549. };
  550.  
  551. void rx_mailinfo( struct RexxHost *, struct rxd_mailinfo **, long, struct RexxMsg * );
  552.  
  553. struct rxd_mailmove
  554. {
  555.     long rc, rc2;
  556.     struct {
  557.         char *folder;
  558.     } arg;
  559. };
  560.  
  561. void rx_mailmove( struct RexxHost *, struct rxd_mailmove **, long, struct RexxMsg * );
  562.  
  563. struct rxd_mailread
  564. {
  565.     long rc, rc2;
  566.     struct {
  567.         char *var, *stem;
  568.         long *window;
  569.         long quiet;
  570.     } arg;
  571.     struct {
  572.         long *window;
  573.     } res;
  574. };
  575.  
  576. void rx_mailread( struct RexxHost *, struct rxd_mailread **, long, struct RexxMsg * );
  577.  
  578. struct rxd_mailreply
  579. {
  580.     long rc, rc2;
  581.     struct {
  582.         char *var, *stem;
  583.         long quiet;
  584.     } arg;
  585.     struct {
  586.         long *window;
  587.     } res;
  588. };
  589.  
  590. void rx_mailreply( struct RexxHost *, struct rxd_mailreply **, long, struct RexxMsg * );
  591.  
  592. struct rxd_mailsend
  593. {
  594.     long rc, rc2;
  595.     struct {
  596.         long all;
  597.     } arg;
  598. };
  599.  
  600. void rx_mailsend( struct RexxHost *, struct rxd_mailsend **, long, struct RexxMsg * );
  601.  
  602. struct rxd_mailsendall
  603. {
  604.     long rc, rc2;
  605. };
  606.  
  607. void rx_mailsendall( struct RexxHost *, struct rxd_mailsendall **, long, struct RexxMsg * );
  608.  
  609. struct rxd_mailstatus
  610. {
  611.     long rc, rc2;
  612.     struct {
  613.         char *status;
  614.     } arg;
  615. };
  616.  
  617. void rx_mailstatus( struct RexxHost *, struct rxd_mailstatus **, long, struct RexxMsg * );
  618.  
  619. struct rxd_mailupdate
  620. {
  621.     long rc, rc2;
  622. };
  623.  
  624. void rx_mailupdate( struct RexxHost *, struct rxd_mailupdate **, long, struct RexxMsg * );
  625.  
  626. struct rxd_mailwrite
  627. {
  628.     long rc, rc2;
  629.     struct {
  630.         char *var, *stem;
  631.         long *window;
  632.         long quiet;
  633.     } arg;
  634.     struct {
  635.         long *window;
  636.     } res;
  637. };
  638.  
  639. void rx_mailwrite( struct RexxHost *, struct rxd_mailwrite **, long, struct RexxMsg * );
  640.  
  641. struct rxd_newmailfile
  642. {
  643.     long rc, rc2;
  644.     struct {
  645.         char *var, *stem;
  646.         char *folder;
  647.     } arg;
  648.     struct {
  649.         char *filename;
  650.     } res;
  651. };
  652.  
  653. void rx_newmailfile( struct RexxHost *, struct rxd_newmailfile **, long, struct RexxMsg * );
  654.  
  655. struct rxd_quit
  656. {
  657.     long rc, rc2;
  658.     struct {
  659.         long force;
  660.     } arg;
  661. };
  662.  
  663. void rx_quit( struct RexxHost *, struct rxd_quit **, long, struct RexxMsg * );
  664.  
  665. struct rxd_readclose
  666. {
  667.     long rc, rc2;
  668. };
  669.  
  670. void rx_readclose( struct RexxHost *, struct rxd_readclose **, long, struct RexxMsg * );
  671.  
  672. struct rxd_readinfo
  673. {
  674.     long rc, rc2;
  675.     struct {
  676.         char *var, *stem;
  677.     } arg;
  678.     struct {
  679.         char **filename;
  680.         char **filetype;
  681.         long **filesize;
  682.         char **tempfile;
  683.     } res;
  684. };
  685.  
  686. void rx_readinfo( struct RexxHost *, struct rxd_readinfo **, long, struct RexxMsg * );
  687.  
  688. struct rxd_readprint
  689. {
  690.     long rc, rc2;
  691.     struct {
  692.         long *part;
  693.     } arg;
  694. };
  695.  
  696. void rx_readprint( struct RexxHost *, struct rxd_readprint **, long, struct RexxMsg * );
  697.  
  698. struct rxd_readsave
  699. {
  700.     long rc, rc2;
  701.     struct {
  702.         long *part;
  703.         char *filename;
  704.         long overwrite;
  705.     } arg;
  706. };
  707.  
  708. void rx_readsave( struct RexxHost *, struct rxd_readsave **, long, struct RexxMsg * );
  709.  
  710. struct rxd_request
  711. {
  712.     long rc, rc2;
  713.     struct {
  714.         char *var, *stem;
  715.         char *body;
  716.         char *gadgets;
  717.     } arg;
  718.     struct {
  719.         long *result;
  720.     } res;
  721. };
  722.  
  723. void rx_request( struct RexxHost *, struct rxd_request **, long, struct RexxMsg * );
  724.  
  725. struct rxd_requestfolder
  726. {
  727.     long rc, rc2;
  728.     struct {
  729.         char *var, *stem;
  730.         char *body;
  731.         long excludeactive;
  732.     } arg;
  733.     struct {
  734.         char *folder;
  735.     } res;
  736. };
  737.  
  738. void rx_requestfolder( struct RexxHost *, struct rxd_requestfolder **, long, struct RexxMsg * );
  739.  
  740. struct rxd_requeststring
  741. {
  742.     long rc, rc2;
  743.     struct {
  744.         char *var, *stem;
  745.         char *body;
  746.         char *string;
  747.         long secret;
  748.     } arg;
  749.     struct {
  750.         char *string;
  751.     } res;
  752. };
  753.  
  754. void rx_requeststring( struct RexxHost *, struct rxd_requeststring **, long, struct RexxMsg * );
  755.  
  756. struct rxd_screentoback
  757. {
  758.     long rc, rc2;
  759. };
  760.  
  761. void rx_screentoback( struct RexxHost *, struct rxd_screentoback **, long, struct RexxMsg * );
  762.  
  763. struct rxd_screentofront
  764. {
  765.     long rc, rc2;
  766. };
  767.  
  768. void rx_screentofront( struct RexxHost *, struct rxd_screentofront **, long, struct RexxMsg * );
  769.  
  770. struct rxd_setflag
  771. {
  772.     long rc, rc2;
  773.     struct {
  774.         long *vol;
  775.         long *per;
  776.     } arg;
  777. };
  778.  
  779. void rx_setflag( struct RexxHost *, struct rxd_setflag **, long, struct RexxMsg * );
  780.  
  781. struct rxd_setfolder
  782. {
  783.     long rc, rc2;
  784.     struct {
  785.         char *folder;
  786.     } arg;
  787. };
  788.  
  789. void rx_setfolder( struct RexxHost *, struct rxd_setfolder **, long, struct RexxMsg * );
  790.  
  791. struct rxd_setmail
  792. {
  793.     long rc, rc2;
  794.     struct {
  795.         long *num;
  796.     } arg;
  797. };
  798.  
  799. void rx_setmail( struct RexxHost *, struct rxd_setmail **, long, struct RexxMsg * );
  800.  
  801. struct rxd_setmailfile
  802. {
  803.     long rc, rc2;
  804.     struct {
  805.         char *mailfile;
  806.     } arg;
  807. };
  808.  
  809. void rx_setmailfile( struct RexxHost *, struct rxd_setmailfile **, long, struct RexxMsg * );
  810.  
  811. struct rxd_show
  812. {
  813.     long rc, rc2;
  814. };
  815.  
  816. void rx_show( struct RexxHost *, struct rxd_show **, long, struct RexxMsg * );
  817.  
  818. struct rxd_userinfo
  819. {
  820.     long rc, rc2;
  821.     struct {
  822.         char *var, *stem;
  823.     } arg;
  824.     struct {
  825.         char *username;
  826.         char *email;
  827.         char *realname;
  828.         char *config;
  829.         char *maildir;
  830.         long *folders;
  831.     } res;
  832. };
  833.  
  834. void rx_userinfo( struct RexxHost *, struct rxd_userinfo **, long, struct RexxMsg * );
  835.  
  836. struct rxd_writeattach
  837. {
  838.     long rc, rc2;
  839.     struct {
  840.         char *file;
  841.         char *desc;
  842.         char *encmode;
  843.         char *ctype;
  844.     } arg;
  845. };
  846.  
  847. void rx_writeattach( struct RexxHost *, struct rxd_writeattach **, long, struct RexxMsg * );
  848.  
  849. struct rxd_writebcc
  850. {
  851.     long rc, rc2;
  852.     struct {
  853.         char **address;
  854.         long add;
  855.     } arg;
  856. };
  857.  
  858. void rx_writebcc( struct RexxHost *, struct rxd_writebcc **, long, struct RexxMsg * );
  859.  
  860. struct rxd_writecc
  861. {
  862.     long rc, rc2;
  863.     struct {
  864.         char **address;
  865.         long add;
  866.     } arg;
  867. };
  868.  
  869. void rx_writecc( struct RexxHost *, struct rxd_writecc **, long, struct RexxMsg * );
  870.  
  871. struct rxd_writeeditor
  872. {
  873.     long rc, rc2;
  874.     struct {
  875.         char *var, *stem;
  876.         char *command;
  877.     } arg;
  878.     struct {
  879.         char *result;
  880.     } res;
  881. };
  882.  
  883. void rx_writeeditor( struct RexxHost *, struct rxd_writeeditor **, long, struct RexxMsg * );
  884.  
  885. struct rxd_writefrom
  886. {
  887.     long rc, rc2;
  888.     struct {
  889.         char *address;
  890.     } arg;
  891. };
  892.  
  893. void rx_writefrom( struct RexxHost *, struct rxd_writefrom **, long, struct RexxMsg * );
  894.  
  895. struct rxd_writeletter
  896. {
  897.     long rc, rc2;
  898.     struct {
  899.         char *file;
  900.         long nosig;
  901.     } arg;
  902. };
  903.  
  904. void rx_writeletter( struct RexxHost *, struct rxd_writeletter **, long, struct RexxMsg * );
  905.  
  906. struct rxd_writemailto
  907. {
  908.     long rc, rc2;
  909.     struct {
  910.         char **address;
  911.     } arg;
  912. };
  913.  
  914. void rx_writemailto( struct RexxHost *, struct rxd_writemailto **, long, struct RexxMsg * );
  915.  
  916. struct rxd_writeoptions
  917. {
  918.     long rc, rc2;
  919.     struct {
  920.         long delete;
  921.         long receipt;
  922.         long notif;
  923.         long addinfo;
  924.         long *importance;
  925.         long *sig;
  926.         long *security;
  927.     } arg;
  928. };
  929.  
  930. void rx_writeoptions( struct RexxHost *, struct rxd_writeoptions **, long, struct RexxMsg * );
  931.  
  932. struct rxd_writequeue
  933. {
  934.     long rc, rc2;
  935.     struct {
  936.         long hold;
  937.     } arg;
  938. };
  939.  
  940. void rx_writequeue( struct RexxHost *, struct rxd_writequeue **, long, struct RexxMsg * );
  941.  
  942. struct rxd_writereplyto
  943. {
  944.     long rc, rc2;
  945.     struct {
  946.         char *address;
  947.     } arg;
  948. };
  949.  
  950. void rx_writereplyto( struct RexxHost *, struct rxd_writereplyto **, long, struct RexxMsg * );
  951.  
  952. struct rxd_writesend
  953. {
  954.     long rc, rc2;
  955. };
  956.  
  957. void rx_writesend( struct RexxHost *, struct rxd_writesend **, long, struct RexxMsg * );
  958.  
  959. struct rxd_writesubject
  960. {
  961.     long rc, rc2;
  962.     struct {
  963.         char *subject;
  964.     } arg;
  965. };
  966.  
  967. void rx_writesubject( struct RexxHost *, struct rxd_writesubject **, long, struct RexxMsg * );
  968.  
  969. struct rxd_writeto
  970. {
  971.     long rc, rc2;
  972.     struct {
  973.         char **address;
  974.         long add;
  975.     } arg;
  976. };
  977.  
  978. void rx_writeto( struct RexxHost *, struct rxd_writeto **, long, struct RexxMsg * );
  979.  
  980. #endif
  981.